import {
    API_BASE_URL
} from '@/utils/appConfig.js';

/**
 * 封装无需登录校验的请求方法
 * @param {string} url - 请求地址
 * @param {object} data - 请求参数
 * @param {string} method - 请求方法，默认GET
 * @returns {Promise} 返回请求结果
 */

export const request = (url, data = {}, method = 'GET') => {
    // 从本地存储获取token
    const token = uni.getStorageSync('token') || ''
    return new Promise((resolve, reject) => {
        uni.request({
            url: API_BASE_URL + url,
            data,
            method,
            header: {
                Authorization: token
            },
            success: (res) => {
                if (res.data?.code === 401 || res.statusCode === 401) {
                    handleTokenExpired();
                    reject(res.data);
                } else {
                    resolve(res.data)
                }
            },
            fail: (err) => {
                reject(err)
            }
        })
    })
}


const handleTokenExpired = () => {
    // 1. 清除本地Token
    uni.removeStorageSync('token');
    uni.removeStorageSync('userInfo');

    // 2. 显示提示（可自定义）
    uni.showToast({
        title: '登录已过期，请重新登录',
        icon: 'none',
        duration: 1000
    });

    // 3. 跳转登录页（防重复跳转）
    const pages = getCurrentPages();
    const currentRoute = pages[pages.length - 1]?.route || '';

    if (!currentRoute.includes('pages/login/login')) {
        setTimeout(() => {
            uni.reLaunch({
                url: '/pages/login/login'
            });
        }, 2000)
    }
};